////////////////////////////////////
// Win32WrapperClass			  //
//                                //
// File: Win32WrapperClass.h      // 
// Desc: Declaration of the       //
//			Win32WrapperClass     //
//			class.				  //
////////////////////////////////////

#ifndef _WIN32WRAPPERCLASS_H_
#define _WIN32WRAPPERCLASS_H_

#include <windows.h>

class Win32WrapperClass {

public:
	// public variables

	// public methods
	Win32WrapperClass();
	Win32WrapperClass(char *ClassName, char *WindowTitle, DWORD dwStyles, RECT *rect, HMENU hMenu, HINSTANCE hInstance);
	virtual ~Win32WrapperClass();

	BOOL Create();
	BOOL Create(int icon, int iconSm);
	BOOL Show();

	// Static general purpose Window Processor for all instances of this class
	static LRESULT CALLBACK stWinProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

	// The actual window processor for this class (called by the static)
	virtual LRESULT CALLBACK WinProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

protected:
	// protected variables

	HWND					m_hWnd;
	HINSTANCE				m_hInstance;
	HMENU					m_hMenu;

	DWORD					m_dwStyles;
	RECT					*m_pRect;
	char					*m_pClassName;
	char					*m_pWindowTitle;


	// protected methods

};

#endif // _WIN32WRAPPERCLASS_H_